Telecommunication services for voice and multimedia (e.g., audio, video, and data) have traditionally been provided using networking technologies such as public switched telephone networks (PSTN). Typically, in such networks, voice signals are converted to digital form and time division multiplexing (TDM) is used to allocate different conversations to periodic time slots. More recently, other networking technologies have been used to carry voice and multimedia information. Such technologies include internet protocol (IP), a formal set of rules for sending data across the internet; frame relay (FR), a telecommunication service providing variable-sized data packets for cost-efficient data transfer; and asynchronous transfer mode (ATM), a high speed networking standard. Such networks provide a single, common and shared infrastructure, thus flexibly enabling a potentially wide variety of new applications and services for customers. Regardless the technology used, as traditional PSTN networks migrate toward other networking technologies, the flexibility of those technologies allows service providers to offer a wide variety of new and advanced application services.
Many telecommunications providers are selecting IP as the access technology for new telecommunications networks that carry voice, data and multimedia information. Such networks are often referred to as Voice over IP (VoIP) networks. Many such providers are using a core network that relies upon the well-known Session Initiation Protocol (SIP) for signaling and call flow operations. Such SIP-based VoIP networks are advantageous in that they use the same access technology (IP) as many other networks, such as the Internet, which facilitates transmitting information to a wide range of destinations.
As is well-known, application servers are used in VoIP networks to provide any of a multitude of services to calls such as, illustratively, 8YY, call transfer and interactive voice response services. Typically, when a call is placed in a VoIP network, a network element, commonly referred to as a service broker (SB), refers to a database to determine which services should be available to the call. These services may be indicated by a parameter of the call, such as the calling party, the called party or any another parameter associated with the call. Based on these parameters, the SB invokes an appropriate application server in order to support the desired services. It is often the case that multiple services are applicable to a single call. Thus, when this is the case, different classes of services would be given priority. For example, typically all services associated with a calling party would be performed first, followed by the services associated with a called party. To provide such multiple services, the history of which services were performed was typically maintained by a switch or a particular application to ensure proper processing of the applications. However, maintaining such a history was complicated and introduced delay in signal processing. Therefore, service providers have typically used one application server on a call. As a result, in some implementations, certain services were mutually exclusive in that they could not be used with certain other services. To solve this limitation, in other implementations an application server would host multiple services in order to provide these services to a call while, at the same time, eliminating the need to access multiple application servers. However, this led to the situation where the same service would be redundantly hosted on different application servers.